Verilog-A 数学函数

数值计算函数,用于数学运算。既可用于数值变量,也可用于信号值。注意输入限制(如 log/ln 不能输入负值)。

基础函数

函数 定义 输入限制 返回值
abs(x) 取绝对值 — integer, real
ceil(x) ≥x 的最小整数 — integer
floor(x) ≤x 的最大整数 — integer
exp(x) 指数 eˣ — real
ln(x) 自然对数 x > 0 real
log(x) 对数(常用对数) x > 0 real
max(x, y) 最大值 — integer, real
min(x, y) 最小值 — integer, real
pow(x, y) x 的 y 次方 — real
sqrt(x) 开根号 x > 0 real

三角函数

函数 定义 输入限制
sin(x) 正弦 —
cos(x) 余弦 —
tan(x) 正切 x ≠ n·(π/2)
asin(x) 反正弦 -1 ≤ x ≤ 1
acos(x) 反余弦 -1 ≤ x ≤ 1
atan(x) 反正切 —
atan2(x, y) x/y 的反正切(四象限) y ≠ 0
hypot(x, y) √(x² + y²) —
sinh(x) 双曲正弦 —
cosh(x) 双曲余弦 —
tanh(x) 双曲正切 —
asinh(x) 反双曲正弦 —
acosh(x) 反双曲余弦 x ≥ 1
atanh(x) 反双曲正切 -1 ≤ x ≤ 1

书中原表 atanh 误写为 atan,此处按标准更正。

实用技巧

  1. tanh 是建模利器:中间点线性度好、任意点连续可导、两端缓慢饱和——非常适合做比较器/运放的非线性限幅:
V(sigout) <+ 0.5*(out_high - out_low)
            * tanh(gain*(V(sigin, sigref) - offset))
            + (out_high + out_low)/2;
  1. M_PI 来自 constants.vams:`define M_PI 3.14159265358979323846。
  2. $vt 为热电压(见 09 - VerilogA 仿真器函数)。

相关笔记